﻿using System;
using System.Linq;
using Acamps.Framework.BancoDados;
using Acamps.Framework.SessionFactory;

namespace Acamps.Framework.NegocioRegras
{
    public class NewsletterEvangelhoNegocio
    {
        private AcessoDados _acessoDados;
        private String _conectionString;

        internal NewsletterEvangelhoNegocio(string conexao)
        {
            _conectionString = conexao;
            _acessoDados = new AcessoDados(conexao);
        }

        public IQueryable<NewsletterEvangelho> ListarNewsletterEvangelhos()
        {
            return _acessoDados.Entidade.NewsletterEvangelhoes;
        }

        public NewsletterEvangelho RecuperarEmailNewsletter(Guid id)
        {
            return _acessoDados.Entidade.NewsletterEvangelhoes.FirstOrDefault(x => x.Id == id);
        }

        public NewsletterEvangelho Salvar(NewsletterEvangelho newsletterEvangelho)
        {
            if (newsletterEvangelho.Id == Guid.Empty)
            {
                newsletterEvangelho.Id = Guid.NewGuid();
                _acessoDados.Entidade.AddToNewsletterEvangelhoes(newsletterEvangelho);
            }
            else
            {
                var news = _acessoDados.Entidade.NewsletterEvangelhoes.FirstOrDefault(x => x.Id == newsletterEvangelho.Id);
                news.Email = newsletterEvangelho.Email;
            }

            _acessoDados.Entidade.SaveChanges();

            return newsletterEvangelho;
        }
    }
}
